package org.sn.jdish.spring.springboot.client;

import java.io.File;
import java.util.HashMap;
import java.util.Map;

import javax.mail.internet.MimeMessage;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.io.FileSystemResource;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Component;
import org.springframework.ui.freemarker.FreeMarkerTemplateUtils;

import freemarker.template.Configuration;
import freemarker.template.Template;

@Component
public class MailClient {

	@Autowired
	private Configuration configuration;

	@Autowired
	private JavaMailSender jms;

	public void sendSimpleMail() throws Exception {
		SimpleMailMessage message = new SimpleMailMessage();
		message.setFrom("1018959409@qq.com");
		message.setTo("1018959409@qq.com");
		message.setSubject("主题：简单邮件");
		message.setText("测试邮件内容");
		jms.send(message);
	}

	public void sendAttachmentsMail() throws Exception {
		MimeMessage mimeMessage = jms.createMimeMessage();
		MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
		helper.setFrom("1018959409@qq.com");
		helper.setTo("1018959409@qq.com");
		helper.setSubject("主题：有附件");
		helper.setText("有附件的邮件");
		FileSystemResource file = new FileSystemResource(new File("weixin.jpg"));
		helper.addAttachment("附件-1.jpg", file);
		helper.addAttachment("附件-2.jpg", file);
		jms.send(mimeMessage);
	}

	public void sendInlineMail() throws Exception {
		MimeMessage mimeMessage = jms.createMimeMessage();
		MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
		helper.setFrom("1018959409@qq.com");
		helper.setTo("1018959409@qq.com");
		helper.setSubject("主题：嵌入静态资源");
		helper.setText("<html><body><img src=\"cid:weixin\" ></body></html>", true);
		FileSystemResource file = new FileSystemResource(new File("weixin.jpg"));
		helper.addInline("weixin", file);
		jms.send(mimeMessage);
	}

	public void sendTemplateMail() throws Exception {
		MimeMessage mimeMessage = jms.createMimeMessage();
		MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true);
		helper.setFrom("1018959409@qq.com");
		helper.setTo("1018959409@qq.com");
		helper.setSubject("主题：模板邮件");
		Map<String, Object> model = new HashMap<String, Object>();
		model.put("username", "snzigod");
		Template template = configuration.getTemplate("mail.ftl");
		String text = FreeMarkerTemplateUtils.processTemplateIntoString(template, model);
		helper.setText(text, true);
		jms.send(mimeMessage);
	}

}
